package com.Day7;

/**
 * Copyright (C), 2018-2021, 若若叶
 * Author: Hx162
 * Date: 2021/7/14 17:06
 * FileName: MyRandom
 * Description: 随机数练习
 */

import java.util.Random;

/**
 * 从0~9随机产生5个不重复的整数，重复重新产生
 * 把这5个整数放到一个数组里
 * 遍历这个数组
 */
public class MyRandom {

    /**
     * 动态初始化一个一维数组，空间5
     */
    private static int[] array = new int[5];

    /**
     * 获取一个随机数
     * @return 把随机数返回
     */
    public static int addRandom(){
        Random random = new Random();
        return random.nextInt(10);
    }

    /**
     * 判断是否重复
     * @param ran 判断这个值
     * @return  返回true 没有重复的   false  有重复的
     */
    public static boolean judge(int ran){
        for (int i = 0; i < array.length; i++) {
            if (ran==array[i]){
                return false;
            }
        }
        return true;
    }

    /**
     * 把判断好的不重复的随机数放到数组中
     * @return  返回这个数组
     */
    public static int[] addArray(){
        for (int i = 0; i < array.length; i++) {
            //获取一个随机数
            int ran = addRandom();
            //获取判断的结果
            Boolean bl = judge(ran);
            if (bl){
                //不重复，把值存进数组
                array[i]=ran;
            }else {
                //重复，不断重新获取随机数，并判断，直到不重复
                //k 时开关，1：运行  0： 结束 得到不重复的随机数停止
                int k=1;
                //初始化一个整数，存放新获取的随机数
                int reran=0;
                while (k==1){
                    //获取一个随机数
                    reran = addRandom();
                    //获取判断的结果
                    Boolean rebl = judge(reran);
                    if (rebl){
                        //不重复，停止获取新的随机数
                        k=0;
                    }
                }
                //把值存进数组
                array[i]=reran;
            }
        }
        //返回数组
        return array;
    }

    /**
     * 遍历数组
     * @param arr 要遍历的数组
     */
    public static void print(int[] arr){
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
        }
    }

    public static void main(String[] args) {
        //初始化一个数组
        int[] arr = addArray();
        //遍历数组
        print(arr);
    }
}
